<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <title>Schema Documentation: the object element</title>
      <link href="../schemadoc.css" rel="stylesheet" type="text/css" />
   </head>
   <body>
      <div class="top-banner">Schema Documentation - Book Profile<span class="titlesub"><br /> version 1.0</span></div>
      <!--Used to have a nav box with link to toc, and prev/next element. Not
						included yet-->
      <h1>The <span class="element-variant">phrase</span> variant of  the <span class="element">object</span> element
      </h1>
      <div class="elementInformation">
         <div class="element-toc-container"><strong>On this page:</strong><ul class="element-toc">
               <li id="link-to-main-menu"><a href="../index.html">Back to<br /> main menu</a></li>
               <li class="h2"><a href="#d76e33">Usage Example</a></li>
               <li class="h2"><a href="#d76e37">Allowed parents</a></li>
               <li class="h2"><a href="#d76e283">Allowed children</a></li>
               <li class="h2"><a href="#d76e411">Content model and additional requirements</a></li>
               <li class="h2"><a href="#d76e622">Variants</a></li>
               <li class="h2"><a href="#d76e646">Namespace</a></li>
               <li class="h2"><a href="#schemadoc-longdesc">Usage Details</a></li>
            </ul>
         </div>
         <div class="element-coreinfo">
            <div class="main-description">
               <p class="description "> The 
                  <code>object</code> element contains a reference to an external resource, such as a graphic or video. 
                  
               </p>
               <p class="description ">The 
                  <code>Phrase</code> variant is an adaption for use embedding objects in phrasal constructs.
                  
               </p>
               <p class="description ">The referenced resource may be an image, video, XML text, or other content, but its media type must be supported by the current
                  profile and features in use. The optional 
                  <code>srctype</code> attribute carries an enumeration of the allowed media types.
                  
               </p>
               <p class="description ">The formal behavior of the 
                  <code>object</code> element is defined by 
                  <code>
                     <a href="http://www.w3.org/TR/xhtml11">XHTML 1.1</a>
                     </code>.
                  
               </p>
               <p class="longdesc-link">Usage details available in the <a href="#schemadoc-longdesc">Usage Details</a> section.
               </p>
            </div>
            <h2 id="d76e33">Usage Example</h2><pre>
&lt;p&gt;
    On the side of the mushroom was carved the next clue in the puzzle: 
    &lt;object xml:id="img_arrow" src="ne_arrow.png"&gt;…&lt;/object&gt;.
&lt;/p&gt;
    </pre><h2 id="d76e37">Allowed parents</h2>
            <p><a class="element" href="e-address02.html">address</a>, 
               <a class="element" href="e-annoref01.html">annoref</a>, 
               <a class="element" href="e-annotation01.html">annotation (<span class="element-variant">block</span> variant)</a>, 
               <a class="element" href="e-annotation02.html">annotation (<span class="element-variant">phrase</span> variant)</a>, 
               <a class="element" href="e-annotation-xml01.html">m:annotation-xml</a>, 
               <a class="element" href="e-aside02.html">aside (<span class="element-variant">block</span> variant)</a>, 
               <a class="element" href="e-aside03.html">aside (<span class="element-variant">toc</span> variant)</a>, 
               <a class="element" href="e-block01.html">block</a>, 
               <a class="element" href="e-caption01.html">caption</a>, 
               <a class="element" href="e-citation01.html">citation (<span class="element-variant">block</span> variant)</a>, 
               <a class="element" href="e-citation02.html">citation (<span class="element-variant">phrase</span> variant)</a>, 
               <a class="element" href="e-d01.html">d</a>, 
               <a class="element" href="e-definition01.html">definition</a>, 
               <a class="element" href="e-description01.html">description (<span class="element-variant">block</span> variant)</a>, 
               <a class="element" href="e-description02.html">description (<span class="element-variant">phrase</span> variant)</a>, 
               <a class="element" href="e-emph01.html">emph</a>, 
               <a class="element" href="e-entry01.html">entry (<span class="element-variant">toc</span> variant)</a>, 
               <a class="element" href="e-entry02.html">entry (<span class="element-variant">index</span> variant)</a>, 
               <a class="element" href="e-entry03.html">entry (<span class="element-variant">bibliography</span> variant)</a>, 
               <a class="element" href="e-entry04.html">entry (<span class="element-variant">glossary</span> variant)</a>, 
               <a class="element" href="e-expansion01.html">expansion</a>, 
               <a class="element" href="e-group01.html">xforms:group</a>, 
               <a class="element" href="e-h01.html">h</a>, 
               <a class="element" href="e-hd01.html">hd</a>, 
               <a class="element" href="e-hpart01.html">hpart</a>, 
               <a class="element" href="e-item01.html">item</a>, 
               <a class="element" href="e-label01.html">xforms:label</a>, 
               <a class="element" href="e-ln02.html">ln</a>, 
               <a class="element" href="e-longdesc01.html">d:longdesc</a>, 
               <a class="element" href="e-meta01.html">meta</a>, 
               <a class="element" href="e-note01.html">note (<span class="element-variant">block</span> variant)</a>, 
               <a class="element" href="e-note02.html">note (<span class="element-variant">phrase</span> variant)</a>, 
               <a class="element" href="e-noteref01.html">noteref</a>, 
               <a class="element" href="e-object01.html">object (<span class="element-variant">block</span> variant)</a>, 
               <a class="element" href="e-object02.html">object (<span class="element-variant">phrase</span> variant)</a>, 
               <a class="element" href="e-otherwise02.html">sel:otherwise</a>, 
               <a class="element" href="e-p01.html">p</a>, 
               <a class="element" href="e-phoneme01.html">ssml:phoneme</a>, 
               <a class="element" href="e-prosody01.html">ssml:prosody</a>, 
               <a class="element" href="e-quote01.html">quote (<span class="element-variant">block</span> variant)</a>, 
               <a class="element" href="e-quote02.html">quote (<span class="element-variant">phrase</span> variant)</a>, 
               <a class="element" href="e-rb01.html">its:rb</a>, 
               <a class="element" href="e-ref01.html">ref</a>, 
               <a class="element" href="e-repeat01.html">xforms:repeat</a>, 
               <a class="element" href="e-rt01.html">its:rt</a>, 
               <a class="element" href="e-s01.html">s</a>, 
               <a class="element" href="e-say-as01.html">ssml:say-as (<span class="element-variant">phrase</span> variant)</a>, 
               <a class="element" href="e-say-as02.html">ssml:say-as (<span class="element-variant">text</span> variant)</a>, 
               <a class="element" href="e-simplifiedLanguageDescription01.html">d:simplifiedLanguageDescription</a>, 
               <a class="element" href="e-span01.html">span</a>, 
               <a class="element" href="e-spine01.html">spine</a>, 
               <a class="element" href="e-sub02.html">ssml:sub</a>, 
               <a class="element" href="e-summary01.html">d:summary</a>, 
               <a class="element" href="e-td01.html">td</a>, 
               <a class="element" href="e-term01.html">term</a>, 
               <a class="element" href="e-th01.html">th</a>, 
               <a class="element" href="e-tour01.html">d:tour</a> and 
               <a class="element" href="e-when01.html">sel:when</a>
               
            </p>
            <h2 id="d76e283">Allowed children</h2>
            <p>This element <em>may</em> contain text.
            </p>
            <p>This element <em>may</em> contain the following children: <a class="element" href="e-abbr01.html">abbr</a>, 
               <a class="element" href="e-address02.html">address</a>, 
               <a class="element" href="e-annoref01.html">annoref</a>, 
               <a class="element" href="e-annotation02.html">annotation</a>, 
               <a class="element" href="e-char01.html">char</a>, 
               <a class="element" href="e-citation02.html">citation</a>, 
               <a class="element" href="e-code02.html">code</a>, 
               <a class="element" href="e-d01.html">d</a>, 
               <a class="element" href="e-definition01.html">definition</a>, 
               <a class="element" href="e-description02.html">description</a>, 
               <a class="element" href="e-emph01.html">emph (<span class="element-variant">phrase</span> variant)</a>, 
               <a class="element" href="e-emph02.html">emph (<span class="element-variant">text</span> variant)</a>, 
               <a class="element" href="e-expansion01.html">expansion</a>, 
               <a class="element" href="e-linebreak01.html">rend:linebreak</a>, 
               <a class="element" href="e-ln02.html">ln</a>, 
               <a class="element" href="e-name01.html">name</a>, 
               <a class="element" href="e-note02.html">note</a>, 
               <a class="element" href="e-noteref01.html">noteref</a>, 
               <a class="element" href="e-num01.html">num</a>, 
               <a class="element" href="e-object02.html">object (<span class="element-variant">phrase</span> variant)</a>, 
               <a class="element" href="e-object03.html">object (<span class="element-variant">text</span> variant)</a>, 
               <a class="element" href="e-quote02.html">quote</a>, 
               <a class="element" href="e-ref01.html">ref</a>, 
               <a class="element" href="e-s01.html">s</a>, 
               <a class="element" href="e-span01.html">span (<span class="element-variant">phrase</span> variant)</a>, 
               <a class="element" href="e-span02.html">span (<span class="element-variant">text</span> variant)</a>, 
               <a class="element" href="e-sub01.html">sub</a>, 
               <a class="element" href="e-sup01.html">sup</a>, 
               <a class="element" href="e-term01.html">term</a>, 
               <a class="element" href="e-time01.html">time</a> and 
               <a class="element" href="e-w01.html">w</a>
               
            </p>
            <h2 id="d76e411">Content model and additional requirements</h2>
            <div class="element-content-model">
               <div class="rng-required-attributes">required attributes: <a class="attribute" href="attributes.html#src01">@src</a>
                  
               </div>
               <div class="rng-optional-attributes">optional attributes: <a class="attribute" href="attributes.html#about01">@about</a>, 
                  <a class="attribute" href="attributes.html#by01">@by</a>, 
                  <a class="attribute" href="attributes.html#class01">@class</a>, 
                  <a class="attribute" href="attributes.html#content01">@content</a>, 
                  <a class="attribute" href="attributes.html#continuation01">@continuation</a>, 
                  <a class="attribute" href="attributes.html#datatype01">@datatype</a>, 
                  <a class="attribute" href="attributes.html#desc01">@desc</a>, 
                  <a class="attribute" href="attributes.html#dir01">@its:dir</a>, 
                  <a class="attribute" href="attributes.html#translate01">@its:translate</a>, 
                  <a class="attribute" href="attributes.html#property01">@property</a>, 
                  <a class="attribute" href="attributes.html#rel01">@rel</a>, 
                  <a class="attribute" href="attributes.html#resource01">@resource</a>, 
                  <a class="attribute" href="attributes.html#rev01">@rev</a>, 
                  <a class="attribute" href="attributes.html#role11">@role</a>, 
                  <a class="attribute" href="attributes.html#selid01">@sel:selid</a>, 
                  <a class="attribute" href="attributes.html#srctype01">@srctype</a>, 
                  <a class="attribute" href="attributes.html#typeof01">@typeof</a>, 
                  <a class="attribute" href="attributes.html#base01">@xml:base</a>, 
                  <a class="attribute" href="attributes.html#id01">@xml:id</a>, 
                  <a class="attribute" href="attributes.html#lang01">@xml:lang</a> and 
                  <a class="attribute" href="attributes.html#space01">@xml:space</a></div>
               
               
               
               <div class="rng-choice"><span class="tng-term">a choice of </span><div class="rng">either <a class="element" href="e-description02.html">description</a></div>
                  <div class="rng">or no content</div>
                  <div class="rng">or 
                     
                     <div class="rng"><span class="rng-term">one or more of </span>
                        
                        <div class="rng"><span class="tng-term">a choice of </span><div class="rng">either one of the 31 elements: <a class="element" href="e-abbr01.html">abbr</a>, <a class="element" href="e-address02.html">address</a>, <a class="element" href="e-annoref01.html">annoref</a>, <a class="element" href="e-annotation02.html">annotation</a>, <a class="element" href="e-char01.html">char</a>, <a class="element" href="e-citation02.html">citation</a>, <a class="element" href="e-code02.html">code</a>, <a class="element" href="e-d01.html">d</a>, <a class="element" href="e-definition01.html">definition</a>, <a class="element" href="e-emph01.html">emph</a>, <a class="element" href="e-emph02.html">emph</a>, <a class="element" href="e-expansion01.html">expansion</a>, <a class="element" href="e-ln02.html">ln</a>, <a class="element" href="e-name01.html">name</a>, <a class="element" href="e-note02.html">note</a>, <a class="element" href="e-noteref01.html">noteref</a>, <a class="element" href="e-num01.html">num</a>, <a class="element" href="e-object02.html">object</a>, <a class="element" href="e-object03.html">object</a>, <a class="element" href="e-quote02.html">quote</a>, <a class="element" href="e-ref01.html">ref</a>, <a class="element" href="e-linebreak01.html">rend:linebreak</a>, <a class="element" href="e-s01.html">s</a>, <a class="element" href="e-span01.html">span</a>, <a class="element" href="e-span02.html">span</a>, <a class="element" href="e-sub01.html">sub</a>, <a class="element" href="e-sup01.html">sup</a>, <a class="element" href="e-term01.html">term</a>, <a class="element" href="e-time01.html">time</a>, <a class="element" href="e-w01.html">w</a> or <a class="element" href="e-w01.html">w</a></div>
                           <div class="rng">or text</div><span class="tng-term">end of choice</span></div>
                        
                     </div>
                     
                  </div><span class="tng-term">end of choice</span></div>
               <div class="schematron-asserts-and-reports">Note that in addition to restrictions presented in the content model  above, 
                  					use of this element must also respect the following requirement:
                  <ul>
                     <li>The 
                        <code>object</code> element must not contain descendant elements from the MathML feature grammar.
                        
                     </li>
                  </ul>
                  <div>Such requirements take precedence over any conflicting statements in the
                     						content model or in the lists above of allowed children and parents.
                  </div>
               </div>
            </div>
            <h2 id="d76e622">Variants</h2>
            <p>This element exists in 3 variants. The other 2  variants are:</p>
            <ul>
               <li><a href="e-object01.html">The <span class="element-variant">block</span> variant of  the <span class="element">object</span> element</a></li>
               <li><a href="e-object03.html">The <span class="element-variant">text</span> variant of  the <span class="element">object</span> element</a></li>
            </ul>
            <h2 id="d76e646">Namespace</h2>
            <p><span class="namespace">http://www.daisy.org/ns/z3998/authoring/</span></p>
            <h2 id="schemadoc-longdesc">Usage Details</h2>
            
            <p>It is not always the case that the referenced object will be available, renderable or accessible. The 
               <code>object</code> element provides two mechanisms for adding fallback accessible descriptions in these cases: 
               
            </p>
            
            <ol>
               
               <li>
                  
                  <p>the direct inclusion of elements within the 
                     <code>object</code> element: 
                     
                  </p>
                  
                  <div>
                     <pre xml:space="preserve">
&lt;object xml:id="mnt1" src="mouse.png"&gt;
    &lt;p&gt;A picture of a small, grey mouse.&lt;/p&gt;
&lt;/object&gt;
                </pre>
                     </div>
                  
                  <p>or</p>
                  
                  <div>
                     <pre xml:space="preserve">
&lt;object xml:id="mnt2" src="mouse.png"&gt;
    &lt;description by="republisher"&gt;
        &lt;p&gt;A picture of a small, grey mouse.&lt;/p&gt;
    &lt;/description&gt;
&lt;/object&gt;
                </pre>
                     </div>
                  
                  <p>In the first example, a 
                     <code>description</code> element with a 
                     <code>by</code> attribute value of 
                     <code>author</code> is implied around the child content. In the second, an explicit 
                     <code>description</code> has been added to identify that the description has been contributed by a republisher of the document. 
                     
                  </p>
                  
               </li>
               
               <li>
                  
                  <p>by attaching a 
                     <code>desc</code> attribute pointing to the description: 
                     
                  </p>
                  
                  <div>
                     <pre xml:space="preserve">
&lt;object xml:id="mnt3" src="mouse.png" desc="mouse-description" /&gt;
&lt;description by="republisher" xml:id="mouse-description"&gt;
    &lt;p&gt;A picture of a small, grey mouse.&lt;/p&gt;
&lt;/description&gt;
                </pre>
                     </div>
                  
               </li>
               
            </ol>
            
            
            <h4 id="d76e717">Associated content</h4>
            
            <p> Although images, tables and other objects may stand on their own in a document, typically they will include an accessible
               description, a caption and possibly a header. 
            </p>
            
            <p> In order to establish that other elements are carrying information about the table or image, you must tie them together using
               
               <code>ref</code> attributes that point to the 
               <code>xml:id</code> of the central element, as in the following example: 
               
            </p>
            
            <div>
               <pre xml:space="preserve">
&lt;hd ref="galapisle"&gt;Galapagos Islands&lt;/hd&gt;

&lt;object xml:id="galapisle" src="island.png" /&gt;

&lt;caption ref="galapisle"&gt;The Galapagos islands lie approximately 970km off the shore of Ecuador.&lt;/caption&gt;
        </pre>
               </div>
            
            <p> If you were to omit the 
               <code>ref</code> attributes, the information would only be loosely associated by its order in the document (i.e., a processing agent would
               not be able to handle the elements as a group). 
               
            </p>
            
            <p> Although all of the above elements are associated through references to the 
               <code>object</code> element, their semantics are still only loosely defined (i.e., the linkage is established, but not what that linkage represents).
               A human can intuit they represent a figure by the collected items and their use, but not so a machine. 
               
            </p>
            
            <p> It can also be confusing to edit a document marked up with all content within a section as siblings, because document narrative
               could fall both immediately before and after the figure elements making it all appear connected. Without checking for 
               <code>ref</code> attributes as you edit, it wouldn't be clear if a new non-structural heading were occuring or a figure were being inserted.
               
               
            </p>
            
            <p> To begin to bind the elements more tightly and create a figure both humans and machines can understand, the 
               <code>block</code> element can be wrapped as a container. A 
               <code>role</code> attribute can then be attached to further specify that all of the children constitute a figure, as in the following example:
               
               
            </p>
            
            <div>
               <pre xml:space="preserve">
&lt;block role="figure"&gt;
    
    &lt;hd ref="galapisland"&gt;Galapagos Islands&lt;/hd&gt;
    
    &lt;object xml:id="galapisland" src="island.png" /&gt;
    
    &lt;caption ref="galapisland"&gt;The Galapagos islands lie approximately 970km off the shore of Ecuador.&lt;/caption&gt;
    
&lt;/block&gt;
        </pre>
               </div>
            
            <p> A common question at this point is why the 
               <code>ref</code> elements are still necessary. The answer is because the 
               <code>block</code> element is only a general container. The 
               <code>role</code> attribute provides additional semantics, but those semantics only extend to what kind of content the 
               <code>block</code> represents, not how it is interrelated (but more on this shortly). 
               
            </p>
            
            <p> Now that the content is grouped, however, we can begin to further simplify it. To avoid the extra work of linking the child
               elements, an 
               <code>associate</code> attribute can be attached to the 
               <code>block</code> (the attribute represents an automatic 
               <code>ref</code> between all the children). The IDREF that you specify in the attribute implicitly makes the references that we have so far
               been carrying forward, so our markup can now be more minimally represented as in the following example: 
               
            </p>
            
            <div>
               <pre xml:space="preserve">
&lt;block role="figure" associate="galap-figure"&gt;
    
    &lt;hd&gt;Galapagos Islands&lt;/hd&gt;
    
    &lt;object xml:id="galap-figure" src="island.png" /&gt;
    
    &lt;caption&gt;The Galapagos islands lie approximately 970km off the shore of Ecuador.&lt;/caption&gt;
    
&lt;/block&gt;
        </pre>
               </div>
            
            <p> Now, when a processing agent comes across this markup it will be able to determine both that the block constitutes a figure
               (from the 
               <code>role</code> attribute) and that the child 
               <code>hd</code> and 
               <code>caption</code> elements are tied to the 
               <code>object</code> (from the 
               <code>associate</code> attribute). We've gained much more information about the figure than we started with, and the work required to reproduce
               the figure has been greatly simplified (there is also no worry about accidentally forgetting a 
               <code>ref</code> on any of the children). 
               
            </p>
            
            <p> Now that we have a compact markup model for figures, we can briefly jump back to why we cannot assume associations. Consider
               the following example: 
            </p>
            
            <div>
               <pre xml:space="preserve">
&lt;block role="figure"&gt;
    
    &lt;object xml:id="galap-isa" src="isabella.png" /&gt;
    
    &lt;object xml:id="galap-fer" src="fernandina.png" /&gt;
    
    &lt;object xml:id="galap-sc" src="santa-cruz.png" /&gt;
    
    &lt;caption&gt;The Galapagos islands lie approximately 970km off the shore of Ecuador.&lt;/caption&gt;
    
&lt;/block&gt;
        </pre>
               </div>
            
            <p> We cannot make a simple association here that all the children of the figure are tied to an 
               <code>object</code>, as the figure constitutes three images sharing a caption. We likewise cannot use the 
               <code>associate</code> attribute, but have to revert back to explicitly linking the 
               <code>caption</code> to each of the three images it describes: 
               
            </p>
            
            <div>
               <pre xml:space="preserve">
&lt;block role="figure"&gt;
    
    &lt;object xml:id="isa" src="isabella.png" /&gt;
    
    &lt;object xml:id="fer" src="fernandina.png" /&gt;
    
    &lt;object xml:id="sc" src="santa-cruz.png" /&gt;
    
    &lt;caption ref="isa fer sc"&gt;The Galapagos islands lie approximately 970km off the shore of Ecuador.&lt;/caption&gt;
    
&lt;/block&gt;
        </pre>
               </div>
            
            <p> It's this potential for varation that requires at least some level of linking in all cases, and makes it impossible to state
               a simple rule that would hold true for all content grouped in a 
               <code>block</code>. 
               
            </p>
            
            <p> Fortunately, most image and table figures are not this complicated, and the simpler process of grouping in a 
               <code>block</code> with the 
               <code>associate</code> attribute will work the majority of the time. 
               
            </p>
            
         </div>
      </div>
   </body>
</html>